package linear_ist

// type Stack interface {
// 	Push(e any)
// 	Pop() any
// 	Empty()
// 	Size() int
// }
//
// type ArrayStack[T any] struct {
// 	// 栈元素数组
// 	elements []T
// 	// 栈顶指针，负数表示空栈
// 	top      int
// }
//
// func NewArrayStack[T](capacity int) ArrayStack[T] {
// 	if capacity < 10 {
// 		capacity = 10
// 	}
// 	return ArrayStack[T]{
// 		elements: make([]T, capacity),
// 		top:      -1,
// 		capacity: capacity,
// 	}
// }
//
// func (stack *ArrayStack[T]) Push(element T) {
// 	stack.elements = append(stack.elements, element)
// 	stack.top += 1
// }
//
// func (stack *ArrayStack[T]) Pop() T {
// 	if stack.top < 0 {
// 		return nil
// 	}
// 	r := stack.elements[stack.top]
// 	stack.top -= 1
// 	return r
// }
//
// func (stack *ArrayStack[T]) Empty() bool {
// 	return stack.top < 0
// }
//
// func (stack *ArrayStack[T]) Size() int {
// 	return stack.top
// }
